<div id="content">
	<h1>开发规范</h1>
	<p class="mg_t_10">
		　　下面我们讲解 DP 编程中推荐的开发规范。 为简单起见，我们假设 webHome 是 DP 应用安装的目录。<br />
		<h1 class="mg_t_10">URL</h1>
		<p class="mg_t_10">　　默认情况下，DP 识别如下格式的 URL：</p>
		<div class="code">
			http://hostname/index.php?c=controllerID&a=actionID
		</div>
		<p class="mg_t_10">　　<strong>index.php?</strong> 后面的字符串可以被DP解析为 控制器和动作。 如果 <strong>actionID</strong> 被省略，控制器将使用默认的动作（在<strong>app/config/config.php</strong>中的<strong>access</strong>的<strong>default_action</strong>中定义）； 如果 <strong>ControllerID</strong> 也被省略，应用将使用默认的控制器 （在<strong>app/config/config.php</strong>中的<strong>access</strong>的<strong>default_contro</strong>l中定义）。<br />
		通过 <strong>dpUrlConfig</strong> 的帮助，可以创建更加可识别，更加 SEO 友好的 URL，例如<br />
		</p>
		<div class="code">
			http://hostname/ControllerID/ActionID.html
		</div>
		<h1 class="mg_t_10">代码</h1>
		<p class="mg_t_10">
			　　DP 推荐命名变量、函数和类时使用 驼峰风格，即每个单词的首字母大写并连在一起，中间无空格。 变量名和函数名应该使它们的第一个单词全部小写，以使其区别于类名（例如：<strong>$basePath</strong>, <strong>runControl()</strong>, <strong>LinkPager</strong>）。对私有类成员变量来说，我们推荐以下划线作为其名字前缀（例如： <strong>$_actionList</strong>）。<br />
			由于在 PHP 5.3.0 之前不支持名字空间，我们推荐类要通过某种独立的方式命名，以避免和第三方类发生冲突。鉴于此， 所有的 DP 框架类名以 "dp" 作前缀。<br />
			　　一个针对控制器名字的特殊规则是它们必须以单词 <strong>Control</strong> 结尾。那么控制器 ID 即类名的首字母小写并去掉单词 <strong>Control</strong>。 例如，<strong>PageControl</strong> 类的 ID 就是 <strong>page</strong> 。这个规则使应用更加安全。它还使控制器相关的URL更加简单(例如 <strong>/index.php?c=page&a=index</strong> 而不是 <strong>/index.php?c=PageControl&a=index</strong>)。
		</p>
		<h1 class="mg_t_10">文件</h1>
		<p class="mg_t_10">
			　　命名和使用文件的规范取决于它们的类型。<br /><br />
			　　类文件应以它们包含的公有类命名。例如， <strong>dpControl</strong> 类位于 <strong>dpControl.php</strong> 文件中。 <br />
			　　公有类是可以被任何其他类使用的类。每个类文件应包含最多一个公有类。 <br />　　私有类（只能被一个公有类使用的类）可以放在使用此类的公有类所在的文件中。<br /><br />

			　　视图文件应以视图的名字命名。例如， <strong>index</strong> 视图位于 <strong>index.html</strong> 文件中。 <br />　　视图文件是一个PHP脚本文件，它包含了用于呈现内容的 HTML和PHP代码。<br /><br />

			　　配置文件可以任意命名。 配置文件是一个PHP脚本，它的主要目的是返回一个体现配置的关联数组。只需要在入口文件更改配置文件名即可
		</p>
		<h1 class="mg_t_10">目录</h1>
		<ul class="mg_t_10">
			<li>　　● <strong>webHome/app</strong> 是应用基础目录，是放置所有安全敏感的PHP脚本和数据文件的地方。DP 有一个默认的 <strong>app</strong> 别名指向此目录。 此目录及目录中的文件应该保护起来防止Web用户访问。</li>
			<li>　　● <strong>webHome/app/action</strong> 此目录是放置独立的<strong>action</strong>文件。</li>
			<li>　　● <strong>webHome/app/control</strong> 此目录是放置所有控制器类文件。</li>
			<li>　　● <strong>webHome/app/language</strong> 此目录是放置所有语言包文件的，一种语言一个子目录 。</li>
			<li>　　● <strong>webHome/app/model</strong> 此目录是放置所有数据模型类文件的。</li>
			<li>　　● <strong>webHome/app/view</strong> 此目录是放置所有视图跟布局文件的。</li>
			<li>　　● <strong>webHome/app/component</strong> 此目录是放置组件类文件的。</li>
			<li>　　● <strong>webHome/app/extensions</strong> 此目录是放置扩展功能文件的。</li>
			<li>　　● <strong>webHome/app/module</strong> 此目录是放置所有模块文件的，一个模块一个子目录。</li>
			<li>　　● <strong>webHome/app/widget</strong> 此目录是放置所有挂件类文件的。</li>
			<li>　　● <strong>webHome/app/config</strong> 此目录是放置应用程序配置文件的。</li>
			<li>　　● <strong>webHome/public</strong> 此目录是放置所有公开的资源文件，比如css/图片。</li>
			<li>　　● <strong>webHome/themes</strong> 此目录是放置所有主题文件，一个主题一个子目录。</li>
			<li>　　● <strong>webHome/runtime</strong> 此目录是放置运行时生成的临时文件。</li>
		</ul>
		<h1 class="mg_t_10">数据库</h1>
		<p class="mg_t_10">　　多数 Web 应用是由数据库驱动的。为了最佳实践，我们推荐在对表和列命名时使用如下命名规范。注意，这些规范并不是 DP 所必须的。</p>
		<ul class="mg_t_10">
			<li>　　● 数据库表名和列名都使用小写命名。</li>
			<li>　　● 名字中的单词应使用下划线分割 (例如 <strong>product_order</strong>)。</li>
			<li>　　● 对于表名，你既可以使用单数也可以使用复数。但不要同时使用两者。为简单起见，我们推荐使用单数名字。</li>
			<li>　　● 表名可以使用一个通用前缀，例如 <strong>tbl_</strong> 。这样当应用所使用的表和另一个应用说使用的表共存于同一个数据库中时就特别有用。这两个应用的表可以通过使用不同的表前缀很容易地区别开。</li>
		</ul>
	</p>
</div>